JavaFX

JavaFX
Developer(s) Oracle Corporation
Stable release 2.0 / October 10, 2011; 4 months ago (2011-10-10)
Operating system Java Runtime Environment
Platform Cross-platform
Available in Java
Type Rich Internet applications
License EULA, parts under GPL+linking exception[1]
Website http://javafx.com/
Java Editions
Java Card
Micro Edition (ME)
Standard Edition (SE)
Enterprise Edition (EE)
JavaFX
PersonalJava (discontinued)

JavaFX is a software platform for creating and delivering rich Internet applications that can run across a wide variety of connected devices. The current release (JavaFX 1.3, April 2010) enables building applications for desktop, browser and mobile phones. TV set-top boxes, gaming consoles, Blu-ray players and other platforms are planned.

To build JavaFX apps developers use a statically typed, declarative language called JavaFX Script; Java code can be integrated into JavaFX programs. JavaFX is compiled to Java bytecode, so JavaFX applications run on any desktop and browser that runs the Java Runtime Environment (JRE) and on top of mobile phones running Java ME.

On desktop, the current release supports Windows XP, Windows Vista and Mac OS X operating systems. Beginning with JavaFX 1.2, Oracle has released beta versions for Linux and OpenSolaris.[2] On mobile, JavaFX is capable of running on multiple mobile operating systems, including Symbian OS, Windows Mobile, and proprietary real-time operating systems.

Commentators have speculated JavaFX will compete on the desktop with Adobe AIR, Apache Pivot, OpenLaszlo and Microsoft Silverlight.

Contents

Technical highlights

Common profile. JavaFX is based on the concept of a “Common profile” that is intended to span across all devices supported by JavaFX. This approach makes it possible for developers to use a common programming model while building an application targeted for both desktop and mobile devices and to share much of the code, graphics assets and content between desktop and mobile versions. To address the need for tuning applications on a specific class of devices, the JavaFX 1.1 platform includes APIs that are desktop or mobile-specific. For example JavaFX Desktop profile includes Swing and advanced visual effects.

Drag-to-Install. From the point of view of the end user “Drag-to-Install” allows them to drag a JavaFX widget (or application residing in a website and is visible within the browser window) and drop it onto their desktop. The application will not lose its state or context even after the browser is closed. An application can also be re-launched by clicking on a shortcut that gets created automatically on the user's desktop. This behavior is enabled out-of-the-box by the Java applet mechanism and is leveraged by JavaFX from the underlying Java layer. Sun touts “Drag-to-Install” as opening up of a new distribution model and allowing developers to “break away from the browser”.

Integrating graphics created with third-party tools. JavaFX includes a set of plug-ins for Adobe Photoshop and Illustrator that enable advanced graphics to be integrated directly into JavaFX applications. The plug-ins generate JavaFX Script code that preserves layers and structure of the graphics. Developers can then easily add animation or effects to the static graphics imported. There is also an SVG graphics converter tool (a.k.a. Media Factory) that allows for importing graphics and previewing assets after the conversion to JavaFX format.

Design highlights

Sun Microsystems licensed a custom typeface called Amble for use on JavaFX powered devices. The font family was designed by mobile user interface design specialists Punchcut and is available as part of the JavaFX SDK 1.3 Release.

JavaFX platform components

Current release of JavaFX platform includes the following components:

  1. The JavaFX SDK: JavaFX compiler and runtime tools. Graphics, media web services, and rich text libraries
  2. NetBeans IDE for JavaFX: NetBeans with drag-and-drop palette to add objects with transformations, effects and animations plus set of samples and best practices. For Eclipse users there is a community-supported plugin hosted on Project Kenai
  3. Tools and plugins for creative tools (a.k.a. Production Suite): Plugins for Adobe Photoshop and Adobe Illustrator that can export graphics assets to JavaFX Script code, tools to convert SVG graphics into JavaFX Script code and preview assets converted to JavaFX from other tools

History

JavaFX Script, the scripting component of JavaFX, began life as a project by Chris Oliver called F3.[3]

Sun Microsystems first announced JavaFX at the JavaOne Worldwide Java Developer conference on May 2007.

In May 2008 Sun Microsystems announced plans to deliver JavaFX for the browser and desktop by the third quarter of 2008, and JavaFX for mobile devices in the second quarter of 2009. Sun also announced a multi-year agreement with On2 Technologies to bring comprehensive video capabilities to the JavaFX product family using the company's TrueMotion Video codec.

Since end of July 2008, developers could download a preview of the JavaFX SDK for Windows and Macintosh, as well as the JavaFX plugin for NetBeans 6.1. On December 4, 2008 Sun released JavaFX 1.0.

JavaFX 1.1

JavaFX for mobile development was finally made available as part of the JavaFX 1.1 release announced officially on February 12, 2009.

JavaFX 1.2

JavaFX 1.2 was released at JavaOne on June 2, 2009. This release introduced:[4]

JavaFX 1.3

JavaFX 1.3 was released on April 22, 2010. This release introduced[5]:

JavaFX 1.3.1

This version was released on August 21, 2010. This release introduced:

Current Release

JavaFX 2.0

This version was released on October 10, 2011. This release introduced:

Various improvements have been made within the JavaFX libraries for multithreading. The Task APIs have been updated to support much more concise threading capabilities (i.e. the JavaTaskBase class is no longer necessary since all the APIs are in Java, and the requirement to have a callback interface and Java implementation class are no longer necessary). In addition, the scene graph has been designed to allow scenes to be constructed on background threads and then attached to "live" scenes in a threadsafe manner.

On May 26, 2011, Oracle released the JavaFX 2.0 Beta. The beta release was only made available for 32 and 64 bit versions of Microsoft Windows XP, Windows Vista and Windows 7. An Early Access version for Mac OS X was also available for members of the JavaFX Partner Program at the time, while Linux support is planned for a future release of JavaFX.

JavaFX 2.0 makes use of a new declarative XML language called FXML[6][7].

License

There are currently various licenses for the modules that compose the JavaFX runtime:

During development, Sun explained they will roll out their strategy for the JavaFX licensing model for JavaFX first release.[11] After the release, Jeet Kaul, Sun's Vice president for Client Software, explained that they will soon publish a specification for JavaFX and its associated file formats, and will continue to open source the JavaFX runtime, and decouple this core from the proprietary parts licensed by external parties[12].

At JavaOne 2011, Oracle Corporation announced that JavaFX 2.0 would become open source[13]. Since December 2011, Oracle began to Open source the JavaFX code under the GPL+linking exception[1][14].

See also

References

  1. ^ a b "OpenJFX Project". Oracle Corporation. http://openjdk.java.net/projects/openjfx/. Retrieved 2011-12-07. 
  2. ^ "Software and System Requirements for JavaFX Technology". http://java.sun.com/javafx/1/reference/system-requirements-1-2.html#javafxsdk. 
  3. ^ Project name F3
  4. ^ Marinacci, Joshua (2009-06-09). "Top 5 Most Important Features in JavaFX 1.2". http://weblogs.java.net/blog/joshy/archive/2009/06/top_5_most_impo.html. Retrieved 2009-06-12. 
  5. ^ "JavaFX 1.3 Released, Improves User Experiences". 2010-04-22. http://blogs.sun.com/javafx/entry/javafx_1_3_released_delivers. Retrieved 2010-04-25. 
  6. ^ Meyer, David (2011-10-06). "JavaFX 2.0 arrives and heads for open source". ZDNet. http://www.zdnet.co.uk/news/application-development/2011/10/06/javafx-20-arrives-and-heads-for-open-source-40094121/. Retrieved 2011-10-09. "The update introduces a new XML-based markup language called FXML, which is aimed at defining user interfaces. Other scripting languages, such as Groovy, JRuby and Scala, can also be used to write apps in JavaFX 2.0, as can the Java development tools NetBeans and Eclipse." 
  7. ^ Greg Brown (2011-08-15). "Introducing FXML". http://fxexperience.com/wp-content/uploads/2011/08/Introducing-FXML.pdf. Retrieved 2011-10-09. 
  8. ^ a b "JavaFX Downloads". http://openjfx.dev.java.net/downloads.html. Retrieved 2008-06-07. 
  9. ^ "OpenJFX Compiler Project". http://openjfx-compiler.dev.java.net/. Retrieved 2008-06-07. 
  10. ^ "Project Scene Graph home". http://scenegraph.dev.java.net/. Retrieved 2008-06-07. 
  11. ^ "Will JavaFX technology be released in open source?". http://java.sun.com/javafx/faqs.jsp#2. Retrieved 2008-06-07. "Sun will continue to engage the OpenJFX community as we release JavaFX products. This fall we will be rolling out our open source strategy for JavaFX technology concurrent with the release of version 1 of JavaFX Desktop" 
  12. ^ Kaul, Jeet (2008-12-16). "JavaFX - the road ahead". http://blogs.sun.com/meetjeet/entry/javafx_the_road_ahead. Retrieved 2009-01-03. "Sun is committed to open standards and open source, and specifications are coming soon(...)There are some dependencies on licensed code that cannot be open sourced. We are working towards decoupling the dependencies so that the non-proprietary portions can be open sourced. Currently the JavaFX compiler, Netbeans JavaFX plugin and Eclipse JavaFX plugin are already being developed in the open source. The scene graph is out in the open. We will put the core runtime out in the open over time." 
  13. ^ Meyer, David (2011-10-06). "JavaFX 2.0 arrives and heads for open source". ZDNet. http://www.zdnet.co.uk/news/application-development/2011/10/06/javafx-20-arrives-and-heads-for-open-source-40094121/. Retrieved 2011-10-09. "At the event, Oracle also announced plans to make the JavaFX platform open source. It has submitted a proposal to the OpenJDK Community, and its first contribution will include the JavaFX user interface controls and related libraries. "Other JavaFX components are planned to follow in multiple phases," the company said." 
  14. ^ Bair, Richard (2011-12-02). "Call for patches". Oracle Corporation. http://forums.oracle.com/forums/thread.jspa?messageID=10017677. Retrieved 2011-12-07. "Hey guys, Just a note to indicate that the UI controls have been open sourced into openjdk (http://hg.openjdk.java.net/openjfx/2.1/master/rt)" 

Bibliography

External links